package com.ruoyi.api.client.service;

import com.ruoyi.api.client.domain.dto.*;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.page.TableDataInfoT;

/**
 * @author zouhuu
 * @description 客户端-题库模块服务层
 * @date 2022/10/17 22:38:52
 */
public interface IClientQbmsService {

    /**
     * 分类列表
     * @return
     */
    public R categoryList();

    /**
     * 题库答题数据统计
     * @param categoryId
     * @return
     */
    public R categoryAnswerData(Long categoryId);

    /**
     * 答题排名
     * @param answerRankDto
     * @return
     */
    public R answerRank(QbmsAnswerRankDto answerRankDto);

    /**
     * 获取章节数据
     * @param categoryId
     * @return
     */
    public R chapterData(Long categoryId);



    /**
     * 题目章节数据
     * @param chapterId
     * @return
     */
    public R questionChapterData(Long chapterId);

    /**
     * 获取题目信息
     * @param questionId
     * @return
     */
    public R questionInfo(Long questionId);

    /**
     * 查询题目列表信息
     * @param qbmsQuestionDto
     * @return
     */
    public TableDataInfoT questionList(QbmsQuestionDto qbmsQuestionDto);

    /**
     * 题目答案检查
     * @param qbmsQuestionAnswerDto
     * @return
     */
    public R questionAnswerCheck(QbmsQuestionAnswerDto qbmsQuestionAnswerDto);


    /**
     * 题目答案信息
     * @param questionId
     * @return
     */
    public R questionAnswerInfo(Long questionId);

    /**
     * 题目收藏
     * @param questionId
     * @return
     */
    public R questionFavorite(Long questionId);

    /**
     * 题目收藏记录
     * @param questionId
     * @return
     */
    public R questionFavoriteRecord(Long questionId);

    /**
     * 题目收藏列表
     * @param categoryId
     * @return
     */
    public R questionFavoriteList(Long categoryId);

    /**
     * 题目笔记
     * @param qbmsRecordNoteDto
     * @return
     */
    public R questionNoteSave(QbmsRecordNoteDto qbmsRecordNoteDto);


    /**
     * 题目笔记内容
     * @param questionId
     * @return
     */
    public R questionNoteContent(Long questionId);

    /**
     * 题目笔记列表
     * @param categoryId
     * @return
     */
    public R questionNoteList(Long categoryId);

    /**
     * 题库导航数据
     * @param categoryId
     * @return
     */
    public R navData(Long categoryId);

    /**
     * 题目纠错
     * @param qbmsRecordFixDto
     * @return
     */
    public R questionFixSave(QbmsRecordFixDto qbmsRecordFixDto);

    /**
     * 题目解析保存
     * @param qbmsQuestionResolveDto
     * @return
     */
    public R questionResolveSave(QbmsRecordResolveDto qbmsQuestionResolveDto);

    /**
     * 题目错题列表
     * @param categoryId
     * @return
     */
    public R questionMistakeList(Long categoryId);

    /**
     * 题目答题列表
     * @param categoryId
     * @return
     */
    public R questionAnswerList(Long categoryId);

    /**
     * 章节题目重做
     * @param chapterId
     * @return
     */
    public R questionAnswerRenewal(Long chapterId);



}
